Next: Checkboxes, Previous: Priorities, Up: TODO Items [Contents][Index]
It is often advisable to break down large tasks into smaller, manageable subtasks. You can do this by creating an outline tree below a TODO item, with detailed subtasks on the tree58. To keep the overview over the fraction of subtasks that are already completed, insert either ‘[/]’ or ‘[%]’ anywhere in the headline. These cookies will be updated each time the TODO status of a child changes, or when pressing C-c C-c on the cookie. For example:
* Organize Party [33%] ** TODO Call people [1/2] *** TODO Peter *** DONE Sarah ** TODO Buy food ** DONE Talk to neighbor
If a heading has both checkboxes and TODO children below it,
the meaning of the statistics cookie become ambiguous. Set the
property COOKIE_DATA to either
‘checkbox’ or
‘todo’ to resolve this
issue.
If you would like to have the statistics cookie count any TODO
entries in the subtree (not just direct children), configure
org-hierarchical-todo-statistics. To do this for a
single subtree, include the word
‘recursive’ into the value of the
COOKIE_DATA property.
* Parent capturing statistics [2/20] :PROPERTIES: :COOKIE_DATA: todo recursive :END:
If you would like a TODO entry to automatically change to DONE when all children are done, you can use the following setup:
(defun org-summary-todo (n-done n-not-done)
"Switch entry to DONE when all subentries are done, to TODO otherwise."
(let (org-log-done org-log-states) ; turn off logging
(org-todo (if (= n-not-done 0) "DONE" "TODO"))))
(add-hook 'org-after-todo-statistics-hook 'org-summary-todo)
Another possibility is the use of checkboxes to identify (a hierarchy of) a large number of subtasks (see Checkboxes).
To keep subtasks out of the global TODO list, see the
org-agenda-todo-list-sublevels.
Next: Checkboxes, Previous: Priorities, Up: TODO Items [Contents][Index]